<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 自定义事件 -->
    <script>
        // 创建了EventEmitter类，自定义事件  
        class EventEmitter {
            constructor() {
                // 所有的事件  
                this.events = new Map(); // es6新的数据结构map
            }
            // type callback
            // 订阅
            addListener(type,fn) {
                if(!this.events.get(type)) {
                    this.events.set(type,fn); // 事件回调函数存进去
                }
            }
            // 触发事件 fire emit 
            // 发布 
            emit (type) {
                let handle = this.events.get(type); // 处理函数
                handle.apply(this,[...arguments].slice(1)); // call bind
            }
        }

        let emitter = new EventEmitter() // 自定义事件类
        emitter.addListener('interview',(salary,position) => {
            console.log(`这里有一个月薪${salary}的${position}岗位，欢迎面基`)
        }) // 自定义事件的类型  
        setTimeout(() => {
            emitter.emit('interview',20000,'工程师');
        },2000)
    </script>
</body>
</html>